xendomains: Better sanity checking of potetntial save records.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 3 Jul 2007 09:12:22 +0000 (10:12 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 3 Jul 2007 09:12:22 +0000 (10:12 +0100)
Signed-off-by: Gawain Lynch <gawain.lynch@gmail.com>
tools/examples/init.d/xendomains

index 0fffd42c80d7104c0d1883c7e6c737d43bb6dbee..987f994a4fa67d9befd3135d77f2a9f407cdd63e 100644 (file)
@@ -221,22 +221,26 @@ start()
     if [ "$XENDOMAINS_RESTORE" = "true" ] &&
        contains_something "$XENDOMAINS_SAVE"
     then
-       XENDOMAINS_SAVED=`/bin/ls $XENDOMAINS_SAVE/* | grep -v 'lost+found'`
        mkdir -p $(dirname "$LOCKFILE")
        touch $LOCKFILE
        echo -n "Restoring Xen domains:"
        saved_domains=`ls $XENDOMAINS_SAVE`
-       for dom in $XENDOMAINS_SAVED; do
-           echo -n " ${dom##*/}"
-           xm restore $dom
-           if [ $? -ne 0 ]; then
-               rc_failed $?
-               echo -n '!'
-           else
-               # mv $dom ${dom%/*}/.${dom##*/}
-               rm $dom
-           fi
-       done
+        for dom in $XENDOMAINS_SAVE/*; do
+            if [ -f $dom ] ; then
+                HEADER=`head -c 16 $dom | head -n 1 2> /dev/null`
+                if [ $HEADER = "LinuxGuestRecord" ]; then
+                    echo -n " ${dom##*/}"
+                    xm restore $dom
+                    if [ $? -ne 0 ]; then
+                        rc_failed $?
+                        echo -n '!'
+                    else
+                        # mv $dom ${dom%/*}/.${dom##*/}
+                        rm $dom
+                    fi
+                fi
+            fi
+        done
        echo .
     fi
 
@@ -260,7 +264,6 @@ start()
            if [ $? -eq 0 ] || is_running $dom; then
                echo -n "(skip)"
            else
-               echo "(booting)"
                xm create --quiet --defconfig $dom
                if [ $? -ne 0 ]; then
                    rc_failed $?